// components/single-picker/index.js

// 是否可选择（选择器滚动时禁用）
let canConfirm = true

Component({
  /**
   * 组件的属性列表
   */
  properties: {
    show: {
      type: Boolean,
      value: false
    },
    title: { // 选择器标题
      type: String,
      value: ''
    },
    tips: { // 辅助操作提示内容
      type: String,
      value: '',
    },
    buttons: { // 辅助操作按钮列表
      type: Array,
      value: [
        { type: 'default', text: '取消' },
        { type: 'primary', text: '确定' }
      ],
    },
    pickerIndex: { // 选择器当前选中索引
      type: Number,
      value: 0,
    },
    pickerColumns: { // 选择器数据 { name: '', ... }
      type: Array,
      value: [],
    },
    itemSuffix: { // 循环出的每项的后缀
      type: String,
      value: '',
    }
  },

  /**
   * 组件的初始数据
   */
  data: {

  },

  /**
   * 组件的方法列表
   */
  methods: {
    // 点击弹窗的按钮
    onDialogBtn(event) {
      if (!canConfirm) return
      this.triggerEvent('dialogbtn', event.detail)
    },

    // 关闭弹窗
    onDialogClose() {
      this.triggerEvent.show && this.setData({
        show: false
      })
      this.triggerEvent('dialogclose')
    },

    // 选择的值发生改变
    onPickerChange(event) {
      this.triggerEvent('pickerchange', {
        pickerIndex: event.detail.value[0]
      })
    },

    // 选择器开始滚动
    onPickStart() {
      canConfirm = false
    },

    // 选择器结束滚动
    onPickEnd() {
      canConfirm = true
    }
  }
})
